import axios from "axios";
// 创建一个axios实例 
import router from "@/router";
const instance = axios.create({
    baseURL: "",
    timeout: 5000
});

// 请求拦截器  
instance.interceptors.request.use(config => {
    // 从存储或其他地方获取token  
    const token = localStorage.getItem("token");
    // 如果token存在，则将其添加到请求头中  
    if (token) {
        config.headers['token'] = token; // 使用自定义头部名称'token' 
    }
    return config;
}, error => {
    // 处理请求错误  

    console(error);
    return Promise.reject(error);
});

// 响应拦截器
// Add a response interceptor
instance.interceptors.response.use(
    // 在2xx范围内的任何状态代码都会触发此函数，用于处理响应数据
    response => {
        return response
    },
    // 任何超出2xx范围的状态码都会触发此函数，用于处理响应错误
    error => {
        const {status } = error.response
        if (status === 401) { // 未授权
            router.push({path: '/home'})
            return;
        } else if (status === 403) { // 没有权限
        } else if (status === 404) { // 资源不存在
            console.log("请求的资源不存在")
        } else if (status >= 500) { // 服务端异常
            console.log("服务端异常")
        }
        // 将未处理的异常往外抛
        return Promise.reject(error)
    })
export function request(config) {
    return instance(config);
}